// 使用前后双指针和单调性
// 宽度是一定会减小的，此时就可以对左右边界进行高度比较，舍弃矮的一边
// 这样就可以排除大量枚举情况，时间复杂度降低为 O(n)
class Solution {
    public int maxArea(int[] height) {
        int left = 0;
        int right = height.length - 1;
        int ret = 0;
        while (left <= right) {
            int len = right - left;
            if(height[left] < height[right]) {
                ret = Math.max(ret, len * height[left]);
                left++;
            } else {
                ret = Math.max(ret, len * height[right]);
                right--;
            }
        }
        return ret;
    }
}